
//2226.每个小孩最多能分到多少糖果
class Solution {

    //能否每人分到x个糖果
    bool check(vector<int>& nums,long long x,long long k)
    {
        long long count=0;  //记录能有多少人分到x个糖果
        for(auto e:nums) count+=e/x;

        return count>=k;
    }

public:
    int maximumCandies(vector<int>& candies, long long k) {
        //直接进行求比较难，但是如果已知答案判断答案是否正确就比较简单了
        //已知答案就需要考虑二分
        long long left=0,right=ranges::max(candies)+1;
        while(left+1<right)
        {
            long long mid=left+(right-left)/2;
            if(check(candies,mid,k)) left=mid;
            else right=mid;
        }
        return left;
    }
};